home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_xemacs.idb / usr / freeware / lib / xemacs-20.4 / info / xemacs.info-8.z / xemacs.info-8
Encoding:
GNU Info File  |  1998-05-21  |  49.3 KB  |  1,151 lines

  1. This is Info file ../../info/xemacs.info, produced by Makeinfo version
  2. 1.68 from the input file xemacs.texi.
  3.  
  4.    This file documents the XEmacs editor.
  5.  
  6.    Copyright (C) 1985, 1986, 1988 Richard M. Stallman.  Copyright (C)
  7. 1991, 1992, 1993, 1994 Lucid, Inc.  Copyright (C) 1993, 1994 Sun
  8. Microsystems, Inc.  Copyright (C) 1995 Amdahl Corporation.
  9.  
  10.    Permission is granted to make and distribute verbatim copies of this
  11. manual provided the copyright notice and this permission notice are
  12. preserved on all copies.
  13.  
  14.    Permission is granted to copy and distribute modified versions of
  15. this manual under the conditions for verbatim copying, provided also
  16. that the sections entitled "The GNU Manifesto", "Distribution" and "GNU
  17. General Public License" are included exactly as in the original, and
  18. provided that the entire resulting derived work is distributed under the
  19. terms of a permission notice identical to this one.
  20.  
  21.    Permission is granted to copy and distribute translations of this
  22. manual into another language, under the above conditions for modified
  23. versions, except that the sections entitled "The GNU Manifesto",
  24. "Distribution" and "GNU General Public License" may be included in a
  25. translation approved by the author instead of in the original English.
  26.  
  27. 
  28. File: xemacs.info,  Node: Several Buffers,  Prev: Kill Buffer,  Up: Buffers
  29.  
  30. Operating on Several Buffers
  31. ============================
  32.  
  33.    The "buffer-menu" facility is like a "Dired for buffers"; it allows
  34. you to request operations on various Emacs buffers by editing a buffer
  35. containing a list of them.  You can save buffers, kill them (here
  36. called "deleting" them, for consistency with Dired), or display them.
  37.  
  38. `M-x buffer-menu'
  39.      Begin editing a buffer listing all Emacs buffers.
  40.  
  41.    The command `buffer-menu' writes a list of all Emacs buffers into
  42. the buffer `*Buffer List*', and selects that buffer in Buffer Menu
  43. mode.  The buffer is read-only.  You can only change it using the
  44. special commands described in this section.  Most of the commands are
  45. graphic characters.  You can use  Emacs cursor motion commands in the
  46. `*Buffer List*' buffer.  If the cursor is on a line describing a
  47. buffer, the following  special commands apply to that buffer:
  48.  
  49. `d'
  50.      Request to delete (kill) the buffer, then move down.  A `D' before
  51.      the buffer name on a line indicates a deletion request.  Requested
  52.      deletions actually take place when you use the `x' command.
  53.  
  54. `k'
  55.      Synonym for `d'.
  56.  
  57. `C-d'
  58.      Like `d' but move up afterwards instead of down.
  59.  
  60. `s'
  61.      Request to save the buffer.  An `S' befor the buffer name on a line
  62.      indicates the request.  Requested saves actually take place when
  63.      you use the `x' command.  You can request both saving and deletion
  64.      for the same buffer.
  65.  
  66. `~'
  67.      Mark buffer "unmodified".  The command `~' does this immediately
  68.      when typed.
  69.  
  70. `x'
  71.      Perform previously requested deletions and saves.
  72.  
  73. `u'
  74.      Remove any request made for the current line, and move down.
  75.  
  76. `<DEL>'
  77.      Move to previous line and remove any request made for that line.
  78.  
  79.    All commands that add or remove flags to request later operations
  80. also move down a line.  They accept a numeric argument as a repeat
  81. count, unless otherwise specified.
  82.  
  83.    There are also special commands to use the buffer list to select
  84. another buffer, and to specify one or more other buffers for display in
  85. additional windows.
  86.  
  87. `1'
  88.      Select the buffer in a full-frame window.  This command takes
  89.      effect immediately.
  90.  
  91. `2'
  92.      Immediately set up two windows, with this buffer in one and the
  93.      buffer selected before `*Buffer List*' in the other.
  94.  
  95. `f'
  96.      Immediately select the buffer in place of the `*Buffer List*'
  97.      buffer.
  98.  
  99. `o'
  100.      Immediately select the buffer in another window as if by `C-x 4 b',
  101.      leaving `*Buffer List*' visible.
  102.  
  103. `q'
  104.      Immediately select this buffer, and display any buffers previously
  105.      flagged with the `m' command in other windows.  If there are no
  106.      buffers flagged with `m', this command is equivalent to `1'.
  107.  
  108. `m'
  109.      Flag this buffer to be displayed in another window if the `q'
  110.      command is used.  The request shows as a `>' at the beginning of
  111.      the line.  The same buffer may not have both a delete request and a
  112.      display request.
  113.  
  114.    Going back between a `buffer-menu' buffer and other Emacs buffers is
  115. easy.  You can, for example, switch from the `*Buffer List*' buffer to
  116. another Emacs buffer, and edit there.  You can then reselect the
  117. `buffer-menu' buffer and perform operations already requested, or you
  118. can kill that buffer or pay no further attention to it.   All that
  119. `buffer-menu' does directly is create and select a suitable buffer, and
  120. turn on Buffer Menu mode.  All the other capabilities of the buffer
  121. menu are implemented by special commands provided in Buffer Menu mode.
  122.  
  123.    The only difference between `buffer-menu' and `list-buffers' is that
  124. `buffer-menu' selects the `*Buffer List*' buffer and `list-buffers'
  125. does not.  If you run `list-buffers' (that is, type `C-x C-b') and
  126. select the buffer list manually, you can use all the commands described
  127. here.
  128.  
  129. 
  130. File: xemacs.info,  Node: Windows,  Next: Mule,  Prev: Buffers,  Up: Top
  131.  
  132. Multiple Windows
  133. ****************
  134.  
  135.    Emacs can split the frame into two or many windows, which can display
  136. parts of different buffers or different parts of one buffer.  If you are
  137. running XEmacs under X, that means you can have the X window that
  138. contains the Emacs frame have multiple subwindows.
  139.  
  140. * Menu:
  141.  
  142. * Basic Window::     Introduction to Emacs windows.
  143. * Split Window::     New windows are made by splitting existing windows.
  144. * Other Window::     Moving to another window or doing something to it.
  145. * Pop Up Window::    Finding a file or buffer in another window.
  146. * Change Window::    Deleting windows and changing their sizes.
  147.  
  148. 
  149. File: xemacs.info,  Node: Basic Window,  Next: Split Window,  Prev: Windows,  Up: Windows
  150.  
  151. Concepts of Emacs Windows
  152. =========================
  153.  
  154.    When Emacs displays multiple windows, each window has one Emacs
  155. buffer designated for display.  The same buffer may appear in more than
  156. one window; if it does, any changes in its text are displayed in all
  157. the windows that display it.  Windows showing the same buffer can show
  158. different parts of it, because each window has its own value of point.
  159.  
  160.    At any time, one  window is the "selected window"; the buffer
  161. displayed by that window is the current buffer.  The cursor shows the
  162. location of point in that window.  Each other window has a location of
  163. point as well, but since the terminal has only one cursor, it cannot
  164. show the location of point in the other windows.
  165.  
  166.    Commands to move point affect the value of point for the selected
  167. Emacs window only.  They do not change the value of point in any other
  168. Emacs window, including those showing the same buffer.  The same is
  169. true for commands such as `C-x b' to change the selected buffer in the
  170. selected window; they do not affect other windows at all.  However,
  171. there are other commands such as `C-x 4 b' that select a different
  172. window and switch buffers in it.  Also, all commands that display
  173. information in a window, including (for example) `C-h f'
  174. (`describe-function') and `C-x C-b' (`list-buffers'), work by switching
  175. buffers in a non-selected window without affecting the selected window.
  176.  
  177.    Each window has its own mode line, which displays the buffer name,
  178. modification status, and major and minor modes of the buffer that is
  179. displayed in the window.  *Note Mode Line::, for details on the mode
  180. line.
  181.  
  182. 
  183. File: xemacs.info,  Node: Split Window,  Next: Other Window,  Prev: Basic Window,  Up: Windows
  184.  
  185. Splitting Windows
  186. =================
  187.  
  188. `C-x 2'
  189.      Split the selected window into two windows, one above the other
  190.      (`split-window-vertically').
  191.  
  192. `C-x 3'
  193.      Split the selected window into two windows positioned side by side
  194.      (`split-window-horizontally').
  195.  
  196. `C-x 6'
  197.      Save the current window configuration in register REG (a letter).
  198.  
  199. `C-x 7'
  200.      Restore (make current) the window configuration in register REG (a
  201.      letter).  Use with a register previously set with `C-x 6'.
  202.  
  203.    The command `C-x 2' (`split-window-vertically') breaks the selected
  204. window into two windows, one above the other.  Both windows start out
  205. displaying the same buffer, with the same value of point.  By default
  206. each of the two windows gets half the height of the window that was
  207. split.  A numeric argument specifies how many lines to give to the top
  208. window.
  209.  
  210.    `C-x 3' (`split-window-horizontally') breaks the selected window
  211. into two side-by-side windows.  A numeric argument specifies how many
  212. columns to give the one on the left.  A line of vertical bars separates
  213. the two windows.  Windows that are not the full width of the frame have
  214. truncated mode lines which do not always appear in inverse video,
  215. because Emacs display routines cannot display a region of inverse video
  216. that is only part of a line on the screen.
  217.  
  218.    When a window is less than the full width, many text lines are too
  219. long to fit.  Continuing all those lines might be confusing.  Set the
  220. variable `truncate-partial-width-windows' to non-`nil' to force
  221. truncation in all windows less than the full width of the frame,
  222. independent of the buffer and its value for `truncate-lines'.  *Note
  223. Continuation Lines::.
  224.  
  225.    Horizontal scrolling is often used in side-by-side windows.  *Note
  226. Display::.
  227.  
  228.    You can resize a window and store that configuration in a register by
  229. supplying a REGISTER argument to `window-configuration-to-register'
  230. (`C-x 6'). To return to the window configuration established with
  231. `window-configuration-to-register', use `jump-to-register' (`C-x j').
  232.  
  233. 
  234. File: xemacs.info,  Node: Other Window,  Next: Pop Up Window,  Prev: Split Window,  Up: Windows
  235.  
  236. Using Other Windows
  237. ===================
  238.  
  239. `C-x o'
  240.      Select another window (`other-window').  That is the letter `o',
  241.      not zero.
  242.  
  243. `M-C-v'
  244.      Scroll the next window (`scroll-other-window').
  245.  
  246. `M-x compare-windows'
  247.      Find the next place where the text in the selected window does not
  248.      match the text in the next window.
  249.  
  250. `M-x other-window-any-frame N'
  251.      Select the Nth different window on any frame.
  252.  
  253.    To select a different window, use `C-x o' (`other-window').  That is
  254. an `o', for `other', not a zero.  When there are more than two windows,
  255. the command moves through all the windows in a cyclic order, generally
  256. top to bottom and left to right.  From the rightmost and bottommost
  257. window, it goes back to the one at the upper left corner.  A numeric
  258. argument, N, moves several steps in the cyclic order of windows. A
  259. negative numeric argument moves around the cycle in the opposite order.
  260. If the optional second argument ALL-FRAMES is non-`nil', the function
  261. cycles through all frames.  When the minibuffer is active, the
  262. minibuffer is the last window in the cycle; you can switch from the
  263. minibuffer window to one of the other windows, and later switch back
  264. and finish supplying the minibuffer argument that is requested.  *Note
  265. Minibuffer Edit::.
  266.  
  267.    The command `M-x other-window-any-frame' also selects the window N
  268. steps away in the cyclic order.  However, unlike `other-window', this
  269. command selects a window on the next or previous frame instead of
  270. wrapping around to the top or bottom of the current frame, when there
  271. are no more windows.
  272.  
  273.    The usual scrolling commands (*note Display::.) apply to the selected
  274. window only.  `M-C-v' (`scroll-other-window') scrolls the window that
  275. `C-x o' would select.  Like `C-v', it takes positive and negative
  276. arguments.
  277.  
  278.    The command `M-x compare-windows' compares the text in the current
  279. window with the text in the next window.  Comparison starts at point in
  280. each window.  Point moves forward in each window, a character at a time,
  281. until the next set of characters in the two windows are different.
  282. Then the command is finished.
  283.  
  284.    A prefix argument IGNORE-WHITESPACE means ignore changes in
  285. whitespace.  The variable `compare-windows-whitespace' controls how
  286. whitespace is skipped.
  287.  
  288.    If `compare-ignore-case' is non-`nil', changes in case are also
  289. ignored.
  290.  
  291. 
  292. File: xemacs.info,  Node: Pop Up Window,  Next: Change Window,  Prev: Other Window,  Up: Windows
  293.  
  294. Displaying in Another Window
  295. ============================
  296.  
  297.    `C-x 4' is a prefix key for commands that select another window
  298. (splitting the window if there is only one) and select a buffer in that
  299. window.  Different `C-x 4' commands have different ways of finding the
  300. buffer to select.
  301.  
  302. `C-x 4 b BUFNAME <RET>'
  303.      Select buffer BUFNAME in another window.  This runs
  304.      `switch-to-buffer-other-window'.
  305.  
  306. `C-x 4 f FILENAME <RET>'
  307.      Visit file FILENAME and select its buffer in another window.  This
  308.      runs `find-file-other-window'.  *Note Visiting::.
  309.  
  310. `C-x 4 d DIRECTORY <RET>'
  311.      Select a Dired buffer for directory DIRECTORY in another window.
  312.      This runs `dired-other-window'.  *Note Dired::.
  313.  
  314. `C-x 4 m'
  315.      Start composing a mail message in another window.  This runs
  316.      `mail-other-window', and its same-window version is `C-x m' (*note
  317.      Sending Mail::.).
  318.  
  319. `C-x 4 .'
  320.      Find a tag in the current tag table in another window.  This runs
  321.      `find-tag-other-window', the multiple-window variant of `M-.'
  322.      (*note Tags::.).
  323.  
  324.    If the variable `display-buffer-function' is non-`nil', its value is
  325. the function to call to handle `display-buffer'. It receives two
  326. arguments, the buffer and a flag that if non-`nil' means that the
  327. currently selected window is not acceptable. Commands such as
  328. `switch-to-buffer-other-window' and `find-file-other-window' work using
  329. this function.
  330.  
  331. 
  332. File: xemacs.info,  Node: Change Window,  Prev: Pop Up Window,  Up: Windows
  333.  
  334. Deleting and Rearranging Windows
  335. ================================
  336.  
  337. `C-x 0'
  338.      Get rid of the selected window (`delete-window').  That is a zero.
  339.      If there is more than one Emacs frame, deleting the sole remaining
  340.      window on that frame deletes the frame as well. If the current
  341.      frame is the only frame, it is not deleted.
  342.  
  343. `C-x 1'
  344.      Get rid of all windows except the selected one
  345.      (`delete-other-windows').
  346.  
  347. `C-x ^'
  348.      Make the selected window taller, at the expense of the other(s)
  349.      (`enlarge-window').
  350.  
  351. `C-x }'
  352.      Make the selected window wider (`enlarge-window-horizontally').
  353.  
  354.    To delete a window, type `C-x 0' (`delete-window').  (That is a
  355. zero.)  The space occupied by the deleted window is distributed among
  356. the other active windows (but not the minibuffer window, even if that
  357. is active at the time).  Once a window is deleted, its attributes are
  358. forgotten; there is no automatic way to make another window of the same
  359. shape or showing the same buffer.  The buffer continues to exist, and
  360. you can select it in any window with `C-x b'.
  361.  
  362.    `C-x 1' (`delete-other-windows') is more powerful than `C-x 0'; it
  363. deletes all the windows except the selected one (and the minibuffer).
  364. The selected window expands to use the whole frame except for the echo
  365. area.
  366.  
  367.    To readjust the division of space among existing windows, use `C-x
  368. ^' (`enlarge-window').  It makes the currently selected window longer
  369. by one line or as many lines as a numeric argument specifies.  With a
  370. negative argument, it makes the selected window smaller.  `C-x }'
  371. (`enlarge-window-horizontally') makes the selected window wider by the
  372. specified number of columns.  The extra screen space given to a window
  373. comes from one of its neighbors, if that is possible; otherwise, all
  374. the competing windows are shrunk in the same proportion.  If this makes
  375. some windows too small, those windows are deleted and their space is
  376. divided up.   Minimum window size is specified by the variables
  377. `window-min-height' and `window-min-width'.
  378.  
  379.    You can also resize windows within a frame by clicking the left mouse
  380. button on a modeline, and dragging.
  381.  
  382.    Clicking the right button on a mode line pops up a menu of common
  383. window manager operations.  This menu contains the following options:
  384.  
  385. Delete Window
  386.      Remove the window above this modeline from the frame.
  387.  
  388. Delete Other Windows
  389.      Delete all windows on the frame except for the one above this
  390.      modeline.
  391.  
  392. Split Window
  393.      Split the window above the mode line in half, creating another
  394.      window.
  395.  
  396. Split Window Horizontally
  397.      Split the window above the mode line in half horizontally, so that
  398.      there will be two windows side-by-side.
  399.  
  400. Balance Windows
  401.      Readjust the sizes of all windows on the frame until all windows
  402.      have roughly the same number of lines.
  403.  
  404. 
  405. File: xemacs.info,  Node: Mule,  Next: Major Modes,  Prev: Windows,  Up: Top
  406.  
  407. World Scripts Support
  408. *********************
  409.  
  410.    If you compile XEmacs with mule option, it supports a wide variety of
  411. world scripts, including Latin script, as well as Arabic script,
  412. Simplified Chinese script (for mainland of China), Traditional Chinese
  413. script (for Taiwan and Hong-Kong), Greek script, Hebrew script, IPA
  414. symbols, Japanese scripts (Hiragana, Katakana and Kanji), Korean scripts
  415. (Hangul and Hanja) and Cyrillic script (for Beylorussian, Bulgarian,
  416. Russian, Serbian and Ukrainian).  These features have been merged from
  417. the modified version of Emacs known as MULE (for "MULti-lingual
  418. Enhancement to GNU Emacs").
  419.  
  420. * Menu:
  421.  
  422. * Mule Intro::              Basic concepts of Mule.
  423. * Language Environments::   Setting things up for the language you use.
  424. * Input Methods::           Entering text characters not on your keyboard.
  425. * Select Input Method::     Specifying your choice of input methods.
  426. * Coding Systems::          Character set conversion when you read and
  427.                               write files, and so on.
  428. * Recognize Coding::        How XEmacs figures out which conversion to use.
  429. * Specify Coding::          Various ways to choose which conversion to use.
  430.  
  431. 
  432. File: xemacs.info,  Node: Mule Intro,  Next: Language Environments,  Prev: Mule,  Up: Mule
  433.  
  434. Introduction to world scripts
  435. =============================
  436.  
  437.    The users of these scripts have established many more-or-less
  438. standard coding systems for storing files.  XEmacs translates between
  439. the internal character encoding and various other coding systems when
  440. reading and writing files, when exchanging data with subprocesses, and
  441. (in some cases) in the `C-q' command (see below).
  442.  
  443.    The command `C-h h' (`view-hello-file') displays the file
  444. `etc/HELLO', which shows how to say "hello" in many languages.  This
  445. illustrates various scripts.
  446.  
  447.    Keyboards, even in the countries where these character sets are used,
  448. generally don't have keys for all the characters in them.  So XEmacs
  449. supports various "input methods", typically one for each script or
  450. language, to make it convenient to type them.
  451.  
  452.    The prefix key `C-x <RET>' is used for commands that pertain to
  453. world scripts, coding systems, and input methods.
  454.  
  455. 
  456. File: xemacs.info,  Node: Language Environments,  Next: Input Methods,  Prev: Mule Intro,  Up: Mule
  457.  
  458. Language Environments
  459. =====================
  460.  
  461.    All supported character sets are supported in XEmacs buffers if it is
  462. compile with mule; there is no need to select a particular language in
  463. order to display its characters in an XEmacs buffer.  However, it is
  464. important to select a "language environment" in order to set various
  465. defaults.  The language environment really represents a choice of
  466. preferred script (more or less) rather that a choice of language.
  467.  
  468.    The language environment controls which coding systems to recognize
  469. when reading text (*note Recognize Coding::.).  This applies to files,
  470. incoming mail, netnews, and any other text you read into XEmacs.  It may
  471. also specify the default coding system to use when you create a file.
  472. Each language environment also specifies a default input method.
  473.  
  474.    The command to select a language environment is `M-x
  475. set-language-environment'.  It makes no difference which buffer is
  476. current when you use this command, because the effects apply globally to
  477. the XEmacs session.  The supported language environments include:
  478.  
  479.      Chinese-BIG5, Chinese-CNS, Chinese-GB, Cyrillic-ISO, English,
  480.      Ethiopic, Greek, Japanese, Korean, Latin-1, Latin-2, Latin-3,
  481.      Latin-4, Latin-5.
  482.  
  483.    Some operating systems let you specify the language you are using by
  484. setting locale environment variables.  XEmacs handles one common special
  485. case of this: if your locale name for character types contains the
  486. string `8859-N', XEmacs automatically selects the corresponding
  487. language environment.
  488.  
  489.    To display information about the effects of a certain language
  490. environment LANG-ENV, use the command `C-h L LANG-ENV <RET>'
  491. (`describe-language-environment').  This tells you which languages this
  492. language environment is useful for, and lists the character sets,
  493. coding systems, and input methods that go with it.  It also shows some
  494. sample text to illustrate scripts used in this language environment.
  495. By default, this command describes the chosen language environment.
  496.  
  497. 
  498. File: xemacs.info,  Node: Input Methods,  Next: Select Input Method,  Prev: Language Environments,  Up: Mule
  499.  
  500. Input Methods
  501. =============
  502.  
  503.    An "input method" is a kind of character conversion designed
  504. specifically for interactive input.  In XEmacs, typically each language
  505. has its own input method; sometimes several languages which use the same
  506. characters can share one input method.  A few languages support several
  507. input methods.
  508.  
  509.    The simplest kind of input method works by mapping ASCII letters into
  510. another alphabet.  This is how the Greek and Russian input methods work.
  511.  
  512.    A more powerful technique is composition: converting sequences of
  513. characters into one letter.  Many European input methods use composition
  514. to produce a single non-ASCII letter from a sequence that consists of a
  515. letter followed by accent characters.  For example, some methods convert
  516. the sequence `'a' into a single accented letter.
  517.  
  518.    The input methods for syllabic scripts typically use mapping followed
  519. by composition.  The input methods for Thai and Korean work this way.
  520. First, letters are mapped into symbols for particular sounds or tone
  521. marks; then, sequences of these which make up a whole syllable are
  522. mapped into one syllable sign.
  523.  
  524.    Chinese and Japanese require more complex methods.  In Chinese input
  525. methods, first you enter the phonetic spelling of a Chinese word (in
  526. input method `chinese-py', among others), or a sequence of portions of
  527. the character (input methods `chinese-4corner' and `chinese-sw', and
  528. others).  Since one phonetic spelling typically corresponds to many
  529. different Chinese characters, you must select one of the alternatives
  530. using special XEmacs commands.  Keys such as `C-f', `C-b', `C-n',
  531. `C-p', and digits have special definitions in this situation, used for
  532. selecting among the alternatives.  <TAB> displays a buffer showing all
  533. the possibilities.
  534.  
  535.    In Japanese input methods, first you input a whole word using
  536. phonetic spelling; then, after the word is in the buffer, XEmacs
  537. converts it into one or more characters using a large dictionary.  One
  538. phonetic spelling corresponds to many differently written Japanese
  539. words, so you must select one of them; use `C-n' and `C-p' to cycle
  540. through the alternatives.
  541.  
  542.    Sometimes it is useful to cut off input method processing so that the
  543. characters you have just entered will not combine with subsequent
  544. characters.  For example, in input method `latin-1-postfix', the
  545. sequence `e '' combines to form an `e' with an accent.  What if you
  546. want to enter them as separate characters?
  547.  
  548.    One way is to type the accent twice; that is a special feature for
  549. entering the separate letter and accent.  For example, `e ' '' gives
  550. you the two characters `e''.  Another way is to type another letter
  551. after the `e'--something that won't combine with that--and immediately
  552. delete it.  For example, you could type `e e <DEL> '' to get separate
  553. `e' and `''.
  554.  
  555.    Another method, more general but not quite as easy to type, is to use
  556. `C-\ C-\' between two characters to stop them from combining.  This is
  557. the command `C-\' (`toggle-input-method') used twice.  *Note Select
  558. Input Method::.
  559.  
  560.    `C-\ C-\' is especially useful inside an incremental search, because
  561. stops waiting for more characters to combine, and starts searching for
  562. what you have already entered.
  563.  
  564.    The variables `input-method-highlight-flag' and
  565. `input-method-verbose-flag' control how input methods explain what is
  566. happening.  If `input-method-highlight-flag' is non-`nil', the partial
  567. sequence is highlighted in the buffer.  If `input-method-verbose-flag'
  568. is non-`nil', the list of possible characters to type next is displayed
  569. in the echo area (but not when you are in the minibuffer).
  570.  
  571. 
  572. File: xemacs.info,  Node: Select Input Method,  Next: Coding Systems,  Prev: Input Methods,  Up: Mule
  573.  
  574. Selecting an Input Method
  575. =========================
  576.  
  577. `C-\'
  578.      Enable or disable use of the selected input method.
  579.  
  580. `C-x <RET> C-\ METHOD <RET>'
  581.      Select a new input method for the current buffer.
  582.  
  583. `C-h I METHOD <RET>'
  584. `C-h C-\ METHOD <RET>'
  585.      Describe the input method METHOD (`describe-input-method').  By
  586.      default, it describes the current input method (if any).
  587.  
  588. `M-x list-input-methods'
  589.      Display a list of all the supported input methods.
  590.  
  591.    To choose an input method for the current buffer, use `C-x <RET>
  592. C-\' (`select-input-method').  This command reads the input method name
  593. with the minibuffer; the name normally starts with the language
  594. environment that it is meant to be used with.  The variable
  595. `current-input-method' records which input method is selected.
  596.  
  597.    Input methods use various sequences of ASCII characters to stand for
  598. non-ASCII characters.  Sometimes it is useful to turn off the input
  599. method temporarily.  To do this, type `C-\' (`toggle-input-method').
  600. To reenable the input method, type `C-\' again.
  601.  
  602.    If you type `C-\' and you have not yet selected an input method, it
  603. prompts for you to specify one.  This has the same effect as using `C-x
  604. <RET> C-\' to specify an input method.
  605.  
  606.    Selecting a language environment specifies a default input method for
  607. use in various buffers.  When you have a default input method, you can
  608. select it in the current buffer by typing `C-\'.  The variable
  609. `default-input-method' specifies the default input method (`nil' means
  610. there is none).
  611.  
  612.    Some input methods for alphabetic scripts work by (in effect)
  613. remapping the keyboard to emulate various keyboard layouts commonly used
  614. for those scripts.  How to do this remapping properly depends on your
  615. actual keyboard layout.  To specify which layout your keyboard has, use
  616. the command `M-x quail-set-keyboard-layout'.
  617.  
  618.    To display a list of all the supported input methods, type `M-x
  619. list-input-methods'.  The list gives information about each input
  620. method, including the string that stands for it in the mode line.
  621.  
  622. 
  623. File: xemacs.info,  Node: Coding Systems,  Next: Recognize Coding,  Prev: Select Input Method,  Up: Mule
  624.  
  625. Coding Systems
  626. ==============
  627.  
  628.    Users of various languages have established many more-or-less
  629. standard coding systems for representing them.  XEmacs does not use
  630. these coding systems internally; instead, it converts from various
  631. coding systems to its own system when reading data, and converts the
  632. internal coding system to other coding systems when writing data.
  633. Conversion is possible in reading or writing files, in sending or
  634. receiving from the terminal, and in exchanging data with subprocesses.
  635.  
  636.    XEmacs assigns a name to each coding system.  Most coding systems are
  637. used for one language, and the name of the coding system starts with the
  638. language name.  Some coding systems are used for several languages;
  639. their names usually start with `iso'.  There are also special coding
  640. systems `binary' and `no-conversion' which do not convert printing
  641. characters at all.
  642.  
  643.    In addition to converting various representations of non-ASCII
  644. characters, a coding system can perform end-of-line conversion.  XEmacs
  645. handles three different conventions for how to separate lines in a file:
  646. newline, carriage-return linefeed, and just carriage-return.
  647.  
  648. `C-h C CODING <RET>'
  649.      Describe coding system CODING.
  650.  
  651. `C-h C <RET>'
  652.      Describe the coding systems currently in use.
  653.  
  654. `M-x list-coding-systems'
  655.      Display a list of all the supported coding systems.
  656.  
  657.    The command `C-h C' (`describe-coding-system') displays information
  658. about particular coding systems.  You can specify a coding system name
  659. as argument; alternatively, with an empty argument, it describes the
  660. coding systems currently selected for various purposes, both in the
  661. current buffer and as the defaults, and the priority list for
  662. recognizing coding systems (*note Recognize Coding::.).
  663.  
  664.    To display a list of all the supported coding systems, type `M-x
  665. list-coding-systems'.  The list gives information about each coding
  666. system, including the letter that stands for it in the mode line (*note
  667. Mode Line::.).
  668.  
  669.    Each of the coding systems that appear in this list--except for
  670. `binary', which means no conversion of any kind--specifies how and
  671. whether to convert printing characters, but leaves the choice of
  672. end-of-line conversion to be decided based on the contents of each file.
  673. For example, if the file appears to use carriage-return linefeed between
  674. lines, that end-of-line conversion will be used.
  675.  
  676.    Each of the listed coding systems has three variants which specify
  677. exactly what to do for end-of-line conversion:
  678.  
  679. `...-unix'
  680.      Don't do any end-of-line conversion; assume the file uses newline
  681.      to separate lines.  (This is the convention normally used on Unix
  682.      and GNU systems.)
  683.  
  684. `...-dos'
  685.      Assume the file uses carriage-return linefeed to separate lines,
  686.      and do the appropriate conversion.  (This is the convention
  687.      normally used on Microsoft systems.)
  688.  
  689. `...-mac'
  690.      Assume the file uses carriage-return to separate lines, and do the
  691.      appropriate conversion.  (This is the convention normally used on
  692.      the Macintosh system.)
  693.  
  694.    These variant coding systems are omitted from the
  695. `list-coding-systems' display for brevity, since they are entirely
  696. predictable.  For example, the coding system `iso-8859-1' has variants
  697. `iso-8859-1-unix', `iso-8859-1-dos' and `iso-8859-1-mac'.
  698.  
  699.    In contrast, the coding system `binary' specifies no character code
  700. conversion at all--none for non-Latin-1 byte values and none for end of
  701. line.  This is useful for reading or writing binary files, tar files,
  702. and other files that must be examined verbatim.
  703.  
  704.    The easiest way to edit a file with no conversion of any kind is with
  705. the `M-x find-file-literally' command.  This uses `binary', and also
  706. suppresses other XEmacs features that might convert the file contents
  707. before you see them.  *Note Visiting::.
  708.  
  709.    The coding system `no-conversion' means that the file contains
  710. non-Latin-1 characters stored with the internal XEmacs encoding.  It
  711. handles end-of-line conversion based on the data encountered, and has
  712. the usual three variants to specify the kind of end-of-line conversion.
  713.  
  714. 
  715. File: xemacs.info,  Node: Recognize Coding,  Next: Specify Coding,  Prev: Coding Systems,  Up: Mule
  716.  
  717. Recognizing Coding Systems
  718. ==========================
  719.  
  720.    Most of the time, XEmacs can recognize which coding system to use for
  721. any given file-once you have specified your preferences.
  722.  
  723.    Some coding systems can be recognized or distinguished by which byte
  724. sequences appear in the data.  However, there are coding systems that
  725. cannot be distinguished, not even potentially.  For example, there is no
  726. way to distinguish between Latin-1 and Latin-2; they use the same byte
  727. values with different meanings.
  728.  
  729.    XEmacs handles this situation by means of a priority list of coding
  730. systems.  Whenever XEmacs reads a file, if you do not specify the coding
  731. system to use, XEmacs checks the data against each coding system,
  732. starting with the first in priority and working down the list, until it
  733. finds a coding system that fits the data.  Then it converts the file
  734. contents assuming that they are represented in this coding system.
  735.  
  736.    The priority list of coding systems depends on the selected language
  737. environment (*note Language Environments::.).  For example, if you use
  738. French, you probably want XEmacs to prefer Latin-1 to Latin-2; if you
  739. use Czech, you probably want Latin-2 to be preferred.  This is one of
  740. the reasons to specify a language environment.
  741.  
  742.    However, you can alter the priority list in detail with the command
  743. `M-x prefer-coding-system'.  This command reads the name of a coding
  744. system from the minibuffer, and adds it to the front of the priority
  745. list, so that it is preferred to all others.  If you use this command
  746. several times, each use adds one element to the front of the priority
  747. list.
  748.  
  749.    Sometimes a file name indicates which coding system to use for the
  750. file.  The variable `file-coding-system-alist' specifies this
  751. correspondence.  There is a special function
  752. `modify-coding-system-alist' for adding elements to this list.  For
  753. example, to read and write all `.txt' using the coding system
  754. `china-iso-8bit', you can execute this Lisp expression:
  755.  
  756.      (modify-coding-system-alist 'file "\\.txt\\'" 'china-iso-8bit)
  757.  
  758. The first argument should be `file', the second argument should be a
  759. regular expression that determines which files this applies to, and the
  760. third argument says which coding system to use for these files.
  761.  
  762.    You can specify the coding system for a particular file using the
  763. `-*-...-*-' construct at the beginning of a file, or a local variables
  764. list at the end (*note File Variables::.).  You do this by defining a
  765. value for the "variable" named `coding'.  XEmacs does not really have a
  766. variable `coding'; instead of setting a variable, it uses the specified
  767. coding system for the file.  For example, `-*-mode: C; coding:
  768. iso-8859-1;-*-' specifies use of the iso-8859-1 coding system, as well
  769. as C mode.
  770.  
  771.    Once XEmacs has chosen a coding system for a buffer, it stores that
  772. coding system in `buffer-file-coding-system' and uses that coding
  773. system, by default, for operations that write from this buffer into a
  774. file.  This includes the commands `save-buffer' and `write-region'.  If
  775. you want to write files from this buffer using a different coding
  776. system, you can specify a different coding system for the buffer using
  777. `set-buffer-file-coding-system' (*note Specify Coding::.).
  778.  
  779. 
  780. File: xemacs.info,  Node: Specify Coding,  Prev: Recognize Coding,  Up: Mule
  781.  
  782. Specifying a Coding System
  783. ==========================
  784.  
  785.    In cases where XEmacs does not automatically choose the right coding
  786. system, you can use these commands to specify one:
  787.  
  788. `C-x <RET> f CODING <RET>'
  789.      Use coding system CODING for the visited file in the current
  790.      buffer.
  791.  
  792. `C-x <RET> c CODING <RET>'
  793.      Specify coding system CODING for the immediately following command.
  794.  
  795. `C-x <RET> k CODING <RET>'
  796.      Use coding system CODING for keyboard input.
  797.  
  798. `C-x <RET> t CODING <RET>'
  799.      Use coding system CODING for terminal output.
  800.  
  801. `C-x <RET> p CODING <RET>'
  802.      Use coding system CODING for subprocess input and output in the
  803.      current buffer.
  804.  
  805.    The command `C-x RET f' (`set-buffer-file-coding-system') specifies
  806. the file coding system for the current buffer--in other words, which
  807. coding system to use when saving or rereading the visited file.  You
  808. specify which coding system using the minibuffer.  Since this command
  809. applies to a file you have already visited, it affects only the way the
  810. file is saved.
  811.  
  812.    Another way to specify the coding system for a file is when you visit
  813. the file.  First use the command `C-x <RET> c'
  814. (`universal-coding-system-argument'); this command uses the minibuffer
  815. to read a coding system name.  After you exit the minibuffer, the
  816. specified coding system is used for *the immediately following command*.
  817.  
  818.    So if the immediately following command is `C-x C-f', for example,
  819. it reads the file using that coding system (and records the coding
  820. system for when the file is saved).  Or if the immediately following
  821. command is `C-x C-w', it writes the file using that coding system.
  822. Other file commands affected by a specified coding system include `C-x
  823. C-i' and `C-x C-v', as well as the other-window variants of `C-x C-f'.
  824.  
  825.    In addition, if you run some file input commands with the precedent
  826. `C-u', you can specify coding system to read from minibuffer.  So if
  827. the immediately following command is `C-x C-f', for example, it reads
  828. the file using that coding system (and records the coding system for
  829. when the file is saved).  Other file commands affected by a specified
  830. coding system include `C-x C-i' and `C-x C-v', as well as the
  831. other-window variants of `C-x C-f'.
  832.  
  833.    The variable `default-buffer-file-coding-system' specifies the
  834. choice of coding system to use when you create a new file.  It applies
  835. when you find a new file, and when you create a buffer and then save it
  836. in a file.  Selecting a language environment typically sets this
  837. variable to a good choice of default coding system for that language
  838. environment.
  839.  
  840.    The command `C-x <RET> t' (`set-terminal-coding-system') specifies
  841. the coding system for terminal output.  If you specify a character code
  842. for terminal output, all characters output to the terminal are
  843. translated into that coding system.
  844.  
  845.    This feature is useful for certain character-only terminals built to
  846. support specific languages or character sets--for example, European
  847. terminals that support one of the ISO Latin character sets.
  848.  
  849.    By default, output to the terminal is not translated at all.
  850.  
  851.    The command `C-x <RET> k' (`set-keyboard-coding-system') specifies
  852. the coding system for keyboard input.  Character-code translation of
  853. keyboard input is useful for terminals with keys that send non-ASCII
  854. graphic characters--for example, some terminals designed for ISO
  855. Latin-1 or subsets of it.
  856.  
  857.    By default, keyboard input is not translated at all.
  858.  
  859.    There is a similarity between using a coding system translation for
  860. keyboard input, and using an input method: both define sequences of
  861. keyboard input that translate into single characters.  However, input
  862. methods are designed to be convenient for interactive use by humans, and
  863. the sequences that are translated are typically sequences of ASCII
  864. printing characters.  Coding systems typically translate sequences of
  865. non-graphic characters.
  866.  
  867.    The command `C-x <RET> p' (`set-buffer-process-coding-system')
  868. specifies the coding system for input and output to a subprocess.  This
  869. command applies to the current buffer; normally, each subprocess has its
  870. own buffer, and thus you can use this command to specify translation to
  871. and from a particular subprocess by giving the command in the
  872. corresponding buffer.
  873.  
  874.    By default, process input and output are not translated at all.
  875.  
  876.    The variable `file-name-coding-system' specifies a coding system to
  877. use for encoding file names.  If you set the variable to a coding
  878. system name (as a Lisp symbol or a string), XEmacs encodes file names
  879. using that coding system for all file operations.  This makes it
  880. possible to use non-Latin-1 characters in file names--or, at least,
  881. those non-Latin-1 characters which the specified coding system can
  882. encode.  By default, this variable is `nil', which implies that you
  883. cannot use non-Latin-1 characters in file names.
  884.  
  885. 
  886. File: xemacs.info,  Node: Major Modes,  Next: Indentation,  Prev: Mule,  Up: Top
  887.  
  888. Major Modes
  889. ***********
  890.  
  891.    Emacs has many different "major modes", each of which customizes
  892. Emacs for editing text of a particular sort.  The major modes are
  893. mutually exclusive;  at any time, each buffer has one major mode.  The
  894. mode line normally contains the name of the current major mode in
  895. parentheses.  *Note Mode Line::.
  896.  
  897.    The least specialized major mode is called "Fundamental mode".  This
  898. mode has no mode-specific redefinitions or variable settings.  Each
  899. Emacs command behaves in its most general manner, and each option is in
  900. its default state.  For editing any specific type of text, such as Lisp
  901. code or English text, you should switch to the appropriate major mode,
  902. such as Lisp mode or Text mode.
  903.  
  904.    Selecting a major mode changes the meanings of a few keys to become
  905. more specifically adapted to the language being edited.  <TAB>, <DEL>,
  906. and <LFD> are changed frequently.  In addition, commands which handle
  907. comments use the mode to determine how to delimit comments.  Many major
  908. modes redefine the syntactical properties of characters appearing in
  909. the buffer.  *Note Syntax::.
  910.  
  911.    The major modes fall into three major groups.  Lisp mode (which has
  912. several variants), C mode, and Muddle mode are for specific programming
  913. languages.  Text mode, Nroff mode, TeX mode, and Outline mode are for
  914. editing English text.  The remaining major modes are not intended for
  915. use on users' files; they are used in buffers created by Emacs for
  916. specific purposes and include Dired mode for buffers made by Dired
  917. (*note Dired::.), Mail mode for buffers made by `C-x m' (*note Sending
  918. Mail::.), and Shell mode for buffers used for communicating with an
  919. inferior shell process (*note Interactive Shell::.).
  920.  
  921.    Most programming language major modes specify that only blank lines
  922. separate paragraphs.  This is so that the paragraph commands remain
  923. useful.  *Note Paragraphs::.  They also cause Auto Fill mode to use the
  924. definition of <TAB> to indent the new lines it creates.  This is
  925. because most lines in a program are usually indented.  *Note
  926. Indentation::.
  927.  
  928. * Menu:
  929.  
  930. * Choosing Modes::     How major modes are specified or chosen.
  931.  
  932. 
  933. File: xemacs.info,  Node: Choosing Modes,  Prev: Major Modes,  Up: Major Modes
  934.  
  935. Choosing Major Modes
  936. ====================
  937.  
  938.    You can select a major mode explicitly for the current buffer, but
  939. most of the time Emacs determines which mode to use based on the file
  940. name or some text in the file.
  941.  
  942.    Use a `M-x' command to explicitly select a new major mode.  Add
  943. `-mode' to the name of a major mode to get the name of a command to
  944. select that mode.  For example, to enter Lisp mode, execute `M-x
  945. lisp-mode'.
  946.  
  947.    When you visit a file, Emacs usually chooses the right major mode
  948. based on the file's name.  For example, files whose names end in `.c'
  949. are edited in C mode.  The variable `auto-mode-alist' controls the
  950. correspondence between file names and major mode.  Its value is a list
  951. in which each element has the form:
  952.  
  953.      (REGEXP . MODE-FUNCTION)
  954.  
  955. For example, one element normally found in the list has the form
  956. `("\\.c$" . c-mode)'. It is responsible for selecting C mode for files
  957. whose names end in `.c'.  (Note that `\\' is needed in Lisp syntax to
  958. include a `\' in the string, which is needed to suppress the special
  959. meaning of `.' in regexps.)  The only practical way to change this
  960. variable is with Lisp code.
  961.  
  962.    You can specify which major mode should be used for editing a certain
  963. file by a special sort of text in the first non-blank line of the file.
  964. The mode name should appear in this line both preceded and followed by
  965. `-*-'.  Other text may appear on the line as well.  For example,
  966.  
  967.      ;-*-Lisp-*-
  968.  
  969. tells Emacs to use Lisp mode.  Note how the semicolon is used to make
  970. Lisp treat this line as a comment.  Such an explicit specification
  971. overrides any default mode based on the file name.
  972.  
  973.    Another format of mode specification is:
  974.  
  975.      -*-Mode: MODENAME;-*-
  976.  
  977. which allows other things besides the major mode name to be specified.
  978. However, Emacs does not look for anything except the mode name.
  979.  
  980.    The major mode can also be specified in a local variables list.
  981. *Note File Variables::.
  982.  
  983.    When you visit a file that does not specify a major mode to use, or
  984. when you create a new buffer with `C-x b', Emacs uses the major mode
  985. specified by the variable `default-major-mode'.  Normally this value is
  986. the symbol `fundamental-mode', which specifies Fundamental mode.  If
  987. `default-major-mode' is `nil', the major mode is taken from the
  988. previously selected buffer.
  989.  
  990. 
  991. File: xemacs.info,  Node: Indentation,  Next: Text,  Prev: Major Modes,  Up: Top
  992.  
  993. Indentation
  994. ***********
  995.  
  996. `<TAB>'
  997.      Indent current line "appropriately" in a mode-dependent fashion.
  998.  
  999. `<LFD>'
  1000.      Perform <RET> followed by <TAB> (`newline-and-indent').
  1001.  
  1002. `M-^'
  1003.      Merge two lines (`delete-indentation').  This would cancel out the
  1004.      effect of <LFD>.
  1005.  
  1006. `C-M-o'
  1007.      Split line at point; text on the line after point becomes a new
  1008.      line indented to the same column that it now starts in
  1009.      (`split-line').
  1010.  
  1011. `M-m'
  1012.      Move (forward or back) to the first non-blank character on the
  1013.      current line (`back-to-indentation').
  1014.  
  1015. `C-M-\'
  1016.      Indent several lines to same column (`indent-region').
  1017.  
  1018. `C-x <TAB>'
  1019.      Shift block of lines rigidly right or left (`indent-rigidly').
  1020.  
  1021. `M-i'
  1022.      Indent from point to the next prespecified tab stop column
  1023.      (`tab-to-tab-stop').
  1024.  
  1025. `M-x indent-relative'
  1026.      Indent from point to under an indentation point in the previous
  1027.      line.
  1028.  
  1029.    Most programming languages have some indentation convention.  For
  1030. Lisp code, lines are indented according to their nesting in
  1031. parentheses.  The same general idea is used for C code, though details
  1032. differ.
  1033.  
  1034.    Use the <TAB> command to indent a line whatever the language.  Each
  1035. major mode defines this command to perform indentation appropriate for
  1036. the particular language.  In Lisp mode, <TAB> aligns a line according
  1037. to its depth in parentheses.  No matter where in the line you are when
  1038. you type <TAB>, it aligns the line as a whole.  In C mode, <TAB>
  1039. implements a subtle and sophisticated indentation style that knows
  1040. about many aspects of C syntax.
  1041.  
  1042.    In Text mode, <TAB> runs the command `tab-to-tab-stop', which
  1043. indents to the next tab stop column.  You can set the tab stops with
  1044. `M-x edit-tab-stops'.
  1045.  
  1046. * Menu:
  1047.  
  1048. * Indentation Commands:: Various commands and techniques for indentation.
  1049. * Tab Stops::            You can set arbitrary "tab stops" and then
  1050.                          indent to the next tab stop when you want to.
  1051. * Just Spaces::          You can request indentation using just spaces.
  1052.  
  1053. 
  1054. File: xemacs.info,  Node: Indentation Commands,  Next: Tab Stops,  Prev: Indentation,  Up: Indentation
  1055.  
  1056. Indentation Commands and Techniques
  1057. ===================================
  1058.  
  1059.    If you just want to insert a tab character in the buffer, you can
  1060. type `C-q <TAB>'.
  1061.  
  1062.    To move over the indentation on a line, type `Meta-m'
  1063. (`back-to-indentation').  This command, given anywhere on a line,
  1064. positions point at the first non-blank character on the line.
  1065.  
  1066.    To insert an indented line before the current line, type `C-a C-o
  1067. <TAB>'.  To make an indented line after the current line, use `C-e
  1068. <LFD>'.
  1069.  
  1070.    `C-M-o' (`split-line') moves the text from point to the end of the
  1071. line vertically down, so that the current line becomes two lines.
  1072. `C-M-o' first moves point forward over any spaces and tabs.  Then it
  1073. inserts after point a newline and enough indentation to reach the same
  1074. column point is on.  Point remains before the inserted newline; in this
  1075. regard, `C-M-o' resembles `C-o'.
  1076.  
  1077.    To join two lines cleanly, use the `Meta-^' (`delete-indentation')
  1078. command to delete the indentation at the front of the current line, and
  1079. the line boundary as well.  Empty spaces are replaced by a single
  1080. space, or by no space if at the beginning of a line, before a close
  1081. parenthesis, or after an open parenthesis.  To delete just the
  1082. indentation of a line, go to the beginning of the line and use `Meta-\'
  1083. (`delete-horizontal-space'), which deletes all spaces and tabs around
  1084. the cursor.
  1085.  
  1086.    There are also commands for changing the indentation of several
  1087. lines at once.  `Control-Meta-\' (`indent-region') gives each line which
  1088. begins in the region the "usual" indentation by invoking <TAB> at the
  1089. beginning of the line.  A numeric argument specifies the column to
  1090. indent to.  Each line is shifted left or right so that its first
  1091. non-blank character appears in that column.  `C-x <TAB>'
  1092. (`indent-rigidly') moves all the lines in the region right by its
  1093. argument (left, for negative arguments).  The whole group of lines moves
  1094. rigidly sideways, which is how the command gets its name.
  1095.  
  1096.    `M-x indent-relative' indents at point based on the previous line
  1097. (actually, the last non-empty line.)  It inserts whitespace at point,
  1098. moving point, until it is underneath an indentation point in the
  1099. previous line.  An indentation point is the end of a sequence of
  1100. whitespace or the end of the line.  If point is farther right than any
  1101. indentation point in the previous line, the whitespace before point is
  1102. deleted and the first indentation point then applicable is used.  If no
  1103. indentation point is applicable even then, `tab-to-tab-stop' is run
  1104. (see next section).
  1105.  
  1106.    `indent-relative' is the definition of <TAB> in Indented Text mode.
  1107. *Note Text::.
  1108.  
  1109. 
  1110. File: xemacs.info,  Node: Tab Stops,  Next: Just Spaces,  Prev: Indentation Commands,  Up: Indentation
  1111.  
  1112. Tab Stops
  1113. =========
  1114.  
  1115.    For typing in tables, you can use Text mode's definition of <TAB>,
  1116. `tab-to-tab-stop'.  This command inserts indentation before point,
  1117. enough to reach the next tab stop column.  Even if you are not in Text
  1118. mode, this function is associated with `M-i' anyway.
  1119.  
  1120.    You can arbitrarily set the tab stops used by `M-i'.  They are
  1121. stored as a list of column-numbers in increasing order in the variable
  1122. `tab-stop-list'.
  1123.  
  1124.    The convenient way to set the tab stops is using `M-x
  1125. edit-tab-stops', which creates and selects a buffer containing a
  1126. description of the tab stop settings.  You can edit this buffer to
  1127. specify different tab stops, and then type `C-c C-c' to make those new
  1128. tab stops take effect.  In the tab stop buffer, `C-c C-c' runs the
  1129. function `edit-tab-stops-note-changes' rather than the default
  1130. `save-buffer'.  `edit-tab-stops' records which buffer was current when
  1131. you invoked it, and stores the tab stops in that buffer.  Normally all
  1132. buffers share the same tab stops and changing them in one buffer
  1133. affects all.  If you make `tab-stop-list' local in one buffer
  1134. `edit-tab-stops' in that buffer edits only the local settings.
  1135.  
  1136.    Below is the text representing ordinary tab stops every eight
  1137. columns:
  1138.  
  1139.              :       :       :       :       :       :
  1140.      0         1         2         3         4
  1141.      0123456789012345678901234567890123456789012345678
  1142.      To install changes, type C-c C-c
  1143.  
  1144.    The first line contains a colon at each tab stop.  The remaining
  1145. lines help you see where the colons are and tell you what to do.
  1146.  
  1147.    Note that the tab stops that control `tab-to-tab-stop' have nothing
  1148. to do with displaying tab characters in the buffer.  *Note Display
  1149. Vars::, for more information on that.
  1150.  
  1151.